home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Freeware / ReNamer 5.40 / ReNamer.exe / {app} / Scripts / Encrypt filenames.pas < prev    next >
Pascal/Delphi Source File  |  2008-05-27  |  1KB  |  55 lines

  1. { XOR-BASE64 Encrypt Filename against a String Key }
  2.  
  3. const
  4.   KEY = 'My Secret Key'; // Set your key!
  5.   DECODE = False; // "True" or "False"
  6.  
  7. function XorEnDeCrypt(const S: String): String;
  8. var
  9.   I, IK, Code: Integer;
  10. begin
  11.   IK := 1;
  12.   Result := '';
  13.   for I := 1 to Length(S) do
  14.   begin
  15.     if IK > Length(KEY) then IK := 1;
  16.     Code := (Ord(S[I]) xor Ord(KEY[IK]));
  17.     Result := Result + Chr(Code);
  18.     IK := IK + 1;
  19.   end;
  20. end;
  21.  
  22. procedure ReplaceChar(var S: String; Find, Replace: Char);
  23. var
  24.   I: Integer;
  25. begin
  26.   for I:=1 to Length(S) do
  27.     if S[I] = Find then
  28.       S[I] := Replace;
  29. end;
  30.  
  31. function Encrypt(const S: WideString): String;
  32. begin
  33.   Result := UTF8Encode(S);
  34.   Result := XorEnDeCrypt(Result);
  35.   Result := Base64Encode(Result);
  36.   ReplaceChar(Result, '/', '=');
  37. end;
  38.  
  39. function Decrypt(const S: String): WideString;
  40. var
  41.   Temp: String;
  42. begin
  43.   Temp := S;
  44.   ReplaceChar(Temp, '=', '/');
  45.   Temp := Base64Decode(Temp);
  46.   Temp := XorEnDeCrypt(Temp);
  47.   Result := UTF8Decode(Temp);
  48. end;
  49.   
  50. begin
  51.   if DECODE then
  52.     FileName := Decrypt(FileName)
  53.   else
  54.     FileName := Encrypt(FileName);
  55. end.